package com.tyao.note.mapper;

import com.tyao.note.model.BFolder;
import java.util.List;

import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

@Repository
public interface BFolderMapper {
	/**
	 * 删除文件夹
	 * @param id
	 * @return
	 */
	int deleteByPrimaryKey(Long id);
	
	/**
	 * 批量删除子文件夹
	 * @param id
	 * @return
	 */
	int deleteBatchByParentId(Long parentId);

	/**
	 * 新建文件夹
	 * 
	 * @param record
	 * @return
	 */
	int insertFolder(BFolder record);

	/**
	 * 根据ID查询文件夹信息
	 * @param id
	 * @return
	 */
	BFolder selectByPrimaryKey(Long id);
	
	/**
	 * 根据ID查询文件夹信息
	 * @param id
	 * @return
	 */
	BFolder selectDefaultFolder();

	/**
	 * 根据文件名查询文件内容,
	 * 
	 * @param folderName
	 *            文件名称
	 * @return 文件夹所有信息，方便日后使用
	 */
	BFolder selectFolderByFolderNameAndUserId(@Param("folderName") String folderName, @Param("userId") Integer userId);

	/**
	 * 根据id获取所有的父级类目
	 * 
	 * @param id
	 * @return
	 */
	List<BFolder> selectFoldersByChildrenId(Long id);

	/**
	 * 根据id获取所有的子级类目
	 * 
	 * @param id
	 * @return
	 */
	List<BFolder> selectFoldersByParentId(Long folderParentId);
	
	/**
	 * 根据用户id获取所有的子级类目
	 * 
	 * @param id
	 * @return
	 */
	List<BFolder> selectFoldersByUserId(Integer userId);

	/**
	 * service没有调用
	 * @return
	 */
	List<BFolder> selectAll();

	/**
	 * 更新文件夹信息
	 * @param record
	 * @return
	 */
	Long updateByPrimaryKey(BFolder record);
}